#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>

//int main()
//{
//	for (int i = 0; i < 7; i++)
//	{
//		for (int j = 0; j < 7 - i; j++)
//		{
//			printf(" ");
//		}
//		for (int k = 1; k <= 2 * i + 1; k++)
//		{
//			printf("*");
//		}
//		printf("\n");
//	}
//	for (int i = 6; i >= 0; i--)
//	{
//		for (int j = 0; j <= 7 - i; j++)
//		{
//			printf(" ");
//		}
//		for (int k = 1; k <= 2 * (i - 1) + 1; k++)
//		{
//			printf("*");
//		}
//		printf("\n");
//	}
//	return 0;
//}


//
//
//int main()
//{
//	int number, a = 0, sum, count;
//	for (number = 0; number <= 100000; number++)
//	{
//		count = 0;
//		sum = 0;
//		int intput = number;
//		int num = number;
//		while (intput > 0)
//		{
//			intput /= 10;
//			count++;
//		}
//		while(num > 0)
//		{
//			a = num % 10;
//			num /= 10;
//			sum = sum + pow(a, count);
//		}
//		if (sum == number) printf("%d ", number);
//	}
//	return 0;
//}
//


//int  Fib(int n)
//{
//	if (n <= 2)
//	{
//		return 1;
//	}
//	else
//	{
//		return Fib(n - 1) + Fib(n - 2);
//	}
//}
//
//
//int main()
//{
//	int num = 0;
//	scanf("%d", &num);
//	int n = Fib(num);
//	printf("%d", n);
//	return 0;
//}
//
//int main()
//{
//	int num = 0, a = 1, b = 1, c = 0;
//	scanf("%d", &num);
//	for (int i = 1; i <= num - 2; i++)
//	{
//		if ((num == 1) || (num == 2))
//		{
//			printf("%d\n", 1);
//			break;
//		}
//		else
//		{
//			c = a + b;
//			a = b;
//			b = c;
//		}
//	}
//	printf("%d\n", c);
//}

int Fac(int n, int k)
{
	if (k == 0)
	{
		return 1;
	}
	else
	{
		return n * Fac(n, k - 1);
	}
}



int main()
{
	int n, k;
	scanf("%d %d", &n, &k);
	int r = Fac(n, k);
	printf("%d\n", r);
	return 0;
}













